//package com.jd.platform.sample3.util;
//
//import java.lang.reflect.Field;
//
//public class GenericAccessor<T> {
//    private T obj;
//
//    public GenericAccessor(T obj) {
//        this.obj = obj;
//    }
//
//    // 读取属性值
//    public Object getFieldValue(String fieldName) throws NoSuchFieldException, IllegalAccessException {
//        // 获取类的字节码对象
//        Class<?> clazz = obj.getClass();
//        // 获取指定名称的属性
//        Field field = clazz.getDeclaredField(fieldName);
//        // 设置访问权限（即使是private也能访问）
//        field.setAccessible(true);
//        // 读取属性值
//        return field.get(obj);
//    }
//
//    // 写入属性值
//    public void setFieldValue(String fieldName, Object value) throws NoSuchFieldException, IllegalAccessException {
//        Class<?> clazz = obj.getClass();
//        Field field = clazz.getDeclaredField(fieldName);
//        field.setAccessible(true);
//        // 写入属性值
//        field.set(obj, value);
//    }
//
//    public static void main(String[] args) {
//        // 测试用的实体类
//        class User {
//            private String name;
//            private int age;
//
//            public User(String name, int age) {
//                this.name = name;
//                this.age = age;
//            }
//
//            @Override
//            public String toString() {
//                return "User{name='" + name + "', age=" + age + "}";
//            }
//        }
//
//        try {
//            // 创建泛型访问器实例
//            GenericAccessor<User> accessor = new GenericAccessor<>(new User("张三", 20));
//
//            // 读取属性值
//            String name = (String) accessor.getFieldValue("name");
//            int age = (int) accessor.getFieldValue("age");
//            System.out.println("读取到的属性值：name=" + name + ", age=" + age);
//
//            // 写入属性值
//            accessor.setFieldValue("name", "李四");
//            accessor.setFieldValue("age", 25);
//            System.out.println("修改后的对象：" + accessor.obj);
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//}
